<?php
/**
 * @author André Coura <andreccls@gmail.com>
 * @since 26/11/2012
 */
//necessário para todas as páginas do admin (facilitador)
include("defaultSite.php");

require_once(PASTA_DAO."Premio.class.php");
require_once(PASTA_DAO."Transacao.class.php");
require_once(PASTA_DAO."HistoricoVenda.class.php");
require_once(PASTA_DAO."Credenciado.class.php");
require_once(PASTA_DAO."Voucher.class.php");
require_once(FPDF."fpdf.php");
require_once(DOMPDF."dompdf_config.inc.php");

//verificação se o usuário esta logado, cado contrário, este será redirecionado para o login.
if($objUsrSession->getIdUsuario() == 0){
	HttpUtil::vaiPara("Login.php?msg=1");
}

if(!isset($_GET["id"]))
$id = "";
else
$id = (int)$_GET["id"];
if(!is_numeric($id) || $id == 0 || $id=="")
$id = null;

/**
 * VERIFICAÇÃO DA TELA QUE SERÁ EXIBIDA
 */

$objPremio = new Premio();
$objTransacao = new Transacao();
$objVoucher = new Voucher();
$objCredenciado = new Credenciado();
if(!isset($_GET["a"]))
$_GET["a"] = "";
switch ($_GET["a"]){
	case 'r':
		$erro = false;
		$objCtrlSmarty->assign("telaCorrente", "resgatarPremio");
		//Recupera saldo de pontos do usuario
		$objHistoricoVenda = new HistoricoVenda();
		$objTransacao = new Transacao();
		
		$valorTotalPontos = $objHistoricoVenda->getValorTotalPontosPorUsuario($objUsrSession->getCpfUsuario());
		$valorTotalTransacoes = $objTransacao->getValorTotalTransacoesPorUsuario($objUsrSession->getIdUsuario());
				
		$saldoPontosUsuario = $valorTotalPontos[0] - $valorTotalTransacoes[0];
		
		//Recupera o premio que usuario deseja recuperar
		$arrCampos = Utf8Parsers::arrayUtf8Encode($objPremio->buscaCampos($id));

		$arrCredenciado = Utf8Parsers::arrayUtf8Encode($objCredenciado->buscaCampos($arrCampos["id_credenciado"]));
		
		//Verifica se usuario tem saldo para emitir o voucher
		if($saldoPontosUsuario < $arrCampos["pontos_premio"]) {
			HttpUtil::vaiPara("DetalhePremio.php?msg=erro1&a=form&id=".$id);
			$erro = true;
		}

		if(!$erro) {

			$date = new DateTime();
			//Emite voucher
			$arrayVoucher = array();
			$arrayVoucher["id_usuario"] = $objUsrSession->getIdUsuario();
			$arrayVoucher["id_premio"] = $arrCampos["id_premio"];
			//debug(strtotime(date("Y-m-d",strtotime("+30 day"))));
			$arrayVoucher["validade_voucher"] = date("Y-m-d", strtotime("+1 month", time()));
			//strtotime("+30 day", date("Y-m-d"));
			//debug(date("Y-m-d", strtotime("+1 month", time())));
			$arrayVoucher["status_voucher"] = 1;
			$arrayVoucher["cod_voucher"] = time();
			$idVoucher = null;
			$objVoucher->alterar($idVoucher,$arrayVoucher,null);
				
			//Registra transacao
			$arrayTransacao = array();
			$arrayTransacao["id_usuario"] = $objUsrSession->getIdUsuario();
			$arrayTransacao["id_voucher"] = $objVoucher->getIdVoucher();
			$arrayTransacao["tipo_transacao"] = 1;
			$arrayTransacao["valor_transacao"] = $arrCampos["pontos_premio"];
				
			$objTransacao->alterar(null,$arrayTransacao,null);

			$arrayVoucher = Utf8Parsers::arrayUtf8Encode($arrayVoucher);
			
			$t = array();
			$t["codigo"] = 'CÓDIGO DE SEGURANÇA:';
			$t = Utf8Parsers::arrayUtf8Encode($t);
			
			
			$objCtrlSmarty->assign("NOME_USR", strtoupper($objUsrSession->getNomeUsuario()));
			$objCtrlSmarty->assign("COD_VOUCHER", $arrayVoucher["cod_voucher"]);
			$objCtrlSmarty->assign("TIT_PREMIO", strtoupper($arrCampos["titulo_premio"]));
			$objCtrlSmarty->assign("IMG_PREMIO", $arrCampos["img_premio"]);
			
			
			$html = $objCtrlSmarty->fetch("voucher.tpl");
			
			//die($html);
			
			//	<img src="imgs/Paris.png" width="95px" height="105px" class="imgIcone">
			$dompdf = new DOMPDF();
			$dompdf->load_html($html);
			$dompdf->set_paper('letter', 'landscape');
			$dompdf->render();
	
			$output = $dompdf->output();

			file_put_contents(PASTA_UPLOADS_ARQUIVOS."vouchers/PLATINUM_Voucher_".$arrayVoucher["cod_voucher"].".pdf", $output);

			//Envia voucher por email
			$to = $objUsrSession->getEmailUser().",".$arrCredenciado["email"].",platinum@primalinea.com.br";
			//debug($to);
			$subject = "Emissão de voucher - Platinum";
			$message = "
						<html>
							<head>
							 	<title>Emissão de voucher - Platinum</title>
							</head>
							<body>
								<p>Parabéns ".$objUsrSession->getNomeUsuario().", você adquiriu um novo voucher.<br/>
								
								<p>Para maiores informações, consulte o voucher anexo a este email.<br/>
								<p>
									Caso não consiga abrir seu voucher, pode baixa-lo <a href=\"".LINK_SITE."/".PASTA_UPLOADS_ARQUIVOS."vouchers/PLATINUM_Voucher_".$arrayVoucher["cod_voucher"].".pdf\" alt=\"link voucher\">aqui</a>
								</p>
								<br/>
								
								-- Equipe Prima Linea - Platinum --
							</body>
						</html>";
			//Open a file
			$file = fopen(PASTA_UPLOADS_ARQUIVOS."vouchers/PLATINUM_Voucher_".$arrayVoucher["cod_voucher"].".pdf", 'r');
			if( $file == false )
			{
				echo "Error in opening file";
				exit();
			}
			// Read the file into a variable
			$size = filesize(PASTA_UPLOADS_ARQUIVOS."vouchers/PLATINUM_Voucher_".$arrayVoucher["cod_voucher"].".pdf");
			$content = fread( $file, $size);

			// encode the data for safe transit
			// and insert \r\n after every 76 chars.
			$encoded_content = chunk_split( base64_encode($content));

			// Get a random 32 bit number using time() as seed.
			$num = md5( time() );

			// Define the main headers.
			$header = "From:platinum@primalinea.com.br\r\n";
			$header .= "MIME-Version: 1.0\r\n";
			$header .= "Content-Type: multipart/mixed; ";
			$header .= "boundary=$num\r\n";
			//$header .= "--$num\r\n";

//			// Define the message section
//			$header .= "Content-type: text/html; charset=utf-8" . "\r\n";
//			$header .= "$message\r\n";
//			$header .= "--$num\r\n";
//
//			// Define the attachment section
//			$header .= "Content-Type:  application/pdf; ";
//			$header .= "name=\"voucher.pdf\"\r\n";
//			$header .= "Content-Transfer-Encoding:base64\r\n";
//			$header .= "Content-Disposition:attachment; ";
//			$header .= "filename=\"PLATINUM_Voucher_".$arrayVoucher["cod_voucher"].".pdf\"\r\n\n";
//			$header .= "$encoded_content\r\n";
//			$header .= "--$num--";
			
			

			$msg = "--$num\n";
			$msg .= "Content-Transfer-Encoding: 8bits\n";
			$msg .= "Content-type: text/html; charset=utf-8" . "\r\n";
			$msg .= "$message\r\n";
			$msg .= "--$num\r\n";

			// Define the attachment section
			$msg .= "Content-Type:  application/pdf; ";
			$msg .= "name=\"voucher.pdf\"\r\n";
			$msg .= "Content-Transfer-Encoding:base64\r\n";
			$msg .= "Content-Disposition:attachment; ";
			$msg .= "filename=\"PLATINUM_Voucher_".$arrayVoucher["cod_voucher"].".pdf\"\r\n\n";
			$msg .= "$encoded_content\r\n";
			
//			print("<pre>");
//			print_r($header);
//			print_r($message);
//			die();
			
			
			$retval = mail ( $to, $subject, $msg, $header,'-rplatinum@primalinea.com.br');
			if( $retval == true )
			{
				$objCtrlSmarty->assign("MENS_VOUCHER_RESGATADO","Voucher resgatado com sucesso.<br/> Em até 24 horas você irá receber o voucher no seu email.");
				HttpUtil::vaiPara("DetalhePremio.php?msg=vSuc&a=form&id=".$id);
			}
			else
			{
				echo "Message could not be sent...";
			}
		}
		
		break;
	default:
		
		
		$arrDados = Utf8Parsers::matrizUtf8Encode(
		$objPremio->pesquisarPremiosPorFiltros($_POST["id_categoria"], $_POST["id_cidade"], $_POST["titulo_premio"]));
		$objCtrlSmarty->assign("arrPremios", $arrDados);
		
		$objCtrlSmarty->assign("id_categoria", $_POST["id_categoria"]);
		$objCtrlSmarty->assign("id_cidade", $_POST["id_cidade"]);
		$objCtrlSmarty->assign("titulo_premio", $_POST["titulo_premio"]);
				
		$objCtrlSmarty->assign("telaCorrente", "resgatarPremio");
	break;
}

$objCtrlSmarty->assign("telaCorrente", "resgatarPremio");
$objCtrlSmarty->assign("CONTEUDO",$objCtrlSmarty->fetch("resgatarPremios.tpl"));

//definição da estrutura do admin <cabecalho, corpo e rodape>
$objCtrlSmarty->assign("ESTRUTURA",$objCtrlSmarty->fetch("estrutura.tpl"));

//ultima coisa que deve ter no arquivo, serve para imprimir a tela
$objCtrlSmarty->display("index.tpl");
?>